IF exists(SELECT * FROM dbo.sysobjects WHERE name='PV_notulenOverzicht' AND xtype='FN') 
BEGIN
	DROP FUNCTION PV_notulenOverzicht
END
GO

CREATE  function PV_notulenOverzicht
(@deKlas varchar(5))
returns @overzicht table(inschrijvingsNr char(7),attest varchar(20),
taak varchar(500),
waarschuwing varchar(500),bijkomend varchar(500),notuleTekst text)
as 
begin

declare @hulpTaak table(inschrijvingsNr char(7),
vak varchar(500)
)

declare @hulpWaarschuwing table(inschrijvingsNr char(7),
vak varchar(500)
)

declare @hulpBijkomend table(inschrijvingsNr char(7),
vak varchar(500)
)

declare @tekst varchar(500)
declare @iNr char(7)
declare @vak char(30)
declare @oudInr char(7)
declare @klas varchar(5)
declare @toon varchar(500)


declare TaCursor cursor local for 
  select d.vak ,d.inschrijvingsNr,l.klas
  from dbo.Del_taak as d
  left join leerlingen..leerlingen as l on
  d.inschrijvingsNr=l.inschrijvingsNr
  left join leraars..vakvolgorde as v
  on v.vakcode=d.vak
  where l.klas like @deKlas 
	and not (d.inschrijvingsNr is null or d.vak is null)
  order by d.inschrijvingsNr,d.vak
for read only

declare WaCursor cursor local for 
  select d.vak,d.inschrijvingsNr,l.klas
  from dbo.Del_waarschuwing as d
  left join leerlingen..leerlingen as l on
  d.inschrijvingsNr=l.inschrijvingsNr
  left join leraars..vakvolgorde as v
  on v.vakcode=d.vak
  where l.klas like @deKlas
        and not (d.inschrijvingsNr is null or d.vak is null)
  order by d.inschrijvingsNr,d.vak
for read only

declare BpCursor cursor local for 
  select d.vak,d.inschrijvingsNr,l.klas
  from dbo.Del_bijkomend as d
  left join leerlingen..leerlingen as l on
  d.inschrijvingsNr=l.inschrijvingsNr
  left join leraars..vakvolgorde as v
  on v.vakcode=d.vak
  where l.klas like @deKlas
        and not (d.inschrijvingsNr is null or d.vak is null)
  order by d.inschrijvingsNr,d.vak
for read only

set @tekst = ''

open TaCursor
fetch next from TaCursor into @vak,@iNr,@klas
if (@@fetch_status=0)
begin
  set @oudInr=@iNr
  while (@@fetch_status=0)
  begin
	if (@oudInr <> @iNr)
	  begin
   	    if len(@tekst) > 0 set @toon=substring(@tekst,1,len(@tekst)-1)
	    insert into @hulpTaak(inschrijvingsNr,vak)   
            select @oudInr,@toon
	    set @toon = ''
	    set @tekst = rtrim(@vak) + ',' 
	    set @oudInr = @iNr	
	  end
   	else
	  begin
   	    set @tekst=@tekst + rtrim(@vak) + ',' 
 	  end
      fetch next from TaCursor into @vak,@iNr,@klas
  end
  if len(@tekst) > 0 set @toon=substring(@tekst,1,len(@tekst)-1)
  insert into @hulpTaak(inschrijvingsNr,vak)
  select @oudInr,@toon
end
close TaCursor
deallocate TaCursor

set @tekst = ''
open WaCursor
fetch next from WaCursor into @vak,@iNr,@klas
if (@@fetch_status=0)
begin
  set @oudInr=@iNr
  while (@@fetch_status=0)
  begin
	if (@oudInr <> @iNr)
	  begin
	    if len(@tekst) > 0 set @toon=substring(@tekst,1,len(@tekst)-1)
	    insert into @hulpWaarschuwing(inschrijvingsNr,vak)
            select @oudInr,@toon
	    set @toon = ''
	    set @tekst = rtrim(@vak)+',' 
	    set @oudInr = @iNr	
	  end
   	else
	 begin
          set @tekst=@tekst + rtrim(@vak) + ',' 
	 end
       fetch next from WaCursor into @vak,@iNr,@klas
  end
   if len(@tekst) > 0 set @toon=substring(@tekst,1,len(@tekst)-1)
   insert into @hulpWaarschuwing(inschrijvingsNr,vak)
   select @oudInr,@toon
end
close WaCursor
deallocate WaCursor

set @tekst = ''
open BpCursor
fetch next from BpCursor into @vak,@iNr,@klas
if (@@fetch_status=0)
begin
  set @oudInr=@iNr
  while (@@fetch_status=0)
  begin
	if (@oudInr <> @iNr)
	  begin
	    if len(@tekst) > 0 set @toon=left(@tekst,len(@tekst)-1)
	    insert into @hulpBijkomend(inschrijvingsNr,vak)
	    select @oudInr,@toon
	    set @tekst = rtrim(@vak)+',' 
	    set @oudInr = @iNr	
	  end
   	else
	 begin
	  set @tekst=@tekst + rtrim(@vak) + ',' 
	 end
       fetch next from BpCursor into @vak,@iNr,@klas
  end
  if len(@tekst) > 0 set @toon=left(@tekst,len(@tekst)-1)
  insert into @hulpBijkomend(inschrijvingsNr,vak)
  select @oudInr,@toon
end
close BpCursor
deallocate BpCursor

insert into @overzicht(inschrijvingsNr,attest,taak,waarschuwing,bijkomend,notuletekst)
select l.inschrijvingsNr,a.stamboekformulering,
       taak=case when (not t.vak is null) and len(t.vak) > 0 
		 then t.vak 
		 else '' end,
       waarschuwing=case when (not w.vak is null) and len(w.vak) > 0 
		 then w.vak 
		  else '' end,
       bijkomend=case when (not b.vak is null) and len(b.vak)> 0 
		then b.vak 
		else '' end,
       de.notuleTekst

      from leerlingen..leerlingen as l
left join Del_beslis as d
on d.inschrijvingsNr=l.inschrijvingsNr
left join studiegegevens..attest as a
on d.attestcode=a.attestcode
left join @hulpTaak as t
on l.inschrijvingsNr=t.inschrijvingsNr
left join @hulpWaarschuwing as w
on l.inschrijvingsNr=w.inschrijvingsNr
left join @hulpBijkomend as b
on l.inschrijvingsNr=b.inschrijvingsNr 
left join del_notulen as de
on l.inschrijvingsNr=de.inschrijvingsNr
where l.klas like @deKlas
return
end